﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DLUProject.Services;
using DLUProject.Domain;
using ColorLife.Core.Helper;
public partial class QuanLyKTX_Phong_XepTuDong : BaseUserControl
{
    public PhongExtension _phongServiceExt { get; set; }
    public IServices<Phong> _phongService { get; set; }
    public IServices<KhuNha> _khuNhaService { get; set; }
    public IServices<SinhVien> _sinhVienService { get; set; }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        if (!IsPostBack)
        {
             

            foreach (var item in _khuNhaService.All().Where(c=>c.SoPhong > 0))
            {
                IDKhuNha.Items.Add(new ListItem(item.TenKhuNha, item.IDKhuNha.ToString()));
            }
        }
    }
    protected void btnSave_ServerClick(object sender, EventArgs e)
    {

        var file = FileUpload1.PostedFile;
        if (file != null && file.ContentLength > 0)
        {
            _sinhVienService.ImportFromXlsx(file.InputStream);
            Response.Redirect("Default.aspx");
        }
        else
        {
            StatusBox.InnerHtml = "Nhập dữ liệu thất bại, vui lòng kiểm tra lại.";
            StatusBox.Attributes.Add("class", "alert alert-danger");
        }

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        var listPhong = _phongService.All();
        var listSv = _sinhVienService.All();

        _phongServiceExt.XepPhongSinhVien(listPhong, listSv, false);

        StatusBox.InnerHtml = "Xếp phòng thành công.";
        StatusBox.Attributes.Add("class", "alert alert-danger");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        bool loaiPhong = LoaiPhong.SelectedValue.ToBool();
        List<Phong> listTam = new List<Phong>();
        foreach (ListItem li in IDPhong.Items)
        {
            if (li.Selected)
            {
                var phong = _phongService.Get(li.Value.ToInt());
                if (phong != null && phong.IsSanSang && phong.LoaiPhong==loaiPhong)
                    listTam.Add(phong);
            }
        }
        if (listTam.Count > 0)
        {
            //var listPhong = _phongService.All().Where(c => c.IDKhuNha == IDKhuNha.SelectedValue.ToInt() && c.IsSanSang == true && c.LoaiPhong == loaiPhong).ToList();
            var listSv = _sinhVienService.All().Where(c => c.TrangThai == (int)TrangThaiSinhVien.Dang_Cho && c.GioiTinh == loaiPhong).ToList();

            _phongServiceExt.XepPhongSinhVien(listTam, listSv);
            lblThongBao.Text = "Xếp sinh viên thành công cho " + listTam.Count + " phòng";
            StatusBox.InnerHtml = "Xếp phòng thành công.";
            StatusBox.Attributes.Add("class", "alert alert-success");
        }
        else
        {
            lblThongBao.Text = "Bạn chưa chọn phòng cần xếp. Mời chọn phòng.";
        }
        
    }
    protected void IDKhuNha_SelectedIndexChanged(object sender, EventArgs e)
    {
        var idKhuNha = IDKhuNha.SelectedValue.ToInt();
        IDPhong.Items.Clear();
        foreach (var item in _phongService.All().Where(c => c.IDKhuNha == idKhuNha && c.IsSanSang == true))
        {
            IDPhong.Items.Add(new ListItem(item.TenPhong, item.IDPhong.ToString()));
        }
    }
}